一种特殊的指针
程序员文章站
2022-03-04 12:33:33
...
char *str = “hello C language”; str是个指针, 为什么后面是个字符串 不是字符串的地址呢?
这一句话表示,定义了一直指针变量str,这个指针变量里面存放了字符串"hello C language"的首地址。
所以等价于 char str[]=" hello C language "
因为,在c语言里面,字符串的底层实现实际上是字符数组,也就是说字符串的等价定义形式是,char str[6]=" hello C language ";有一个字符\0,str代表的也是字符数组的头指针。字符串在c语言中是个特别的数据类型,初学者不要太钻牛角尖,你目前掌握2种字符串定义方式就可以。
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
char aa[]= "A中";
char *str = &aa;
int i;
printf("str's len = %d\n", (int)strlen(str));
printf("str's = %c\n", str);
printf("Hex code: \n");
for (i = 0; i < strlen(str); i++)
{
printf("%02x \n", (unsigned char)str[i]);
printf("%02x \n", (unsigned char)aa[i]);
}
printf("\n");
return 0;
}
推荐阅读