欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一种特殊的指针

程序员文章站 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;
}

一种特殊的指针

上一篇: C#多窗体

下一篇: Optional类