#include<stdio.h>intmain(){char a[]={'H','e','l','l','o','!'};printf("%p\n", a);printf("%llu\n",sizeof(a)/sizeof(a[0]));for(int i =0; i <sizeof(a)/sizeof(a[0]); i++){printf("%c",*(a + i));}printf("\n");for(int i =0; i <sizeof(a)/sizeof(a[0]); i++){printf("%c", a[i]);}printf("\n");return0;}
运行结果
三、字符串
实例
#include<stdio.h>intmain(){char a[]={'H','e','l','l','o','!','\0'};char b[]={'H','e','l','l','o','!',0};char c[]={"Hello!"};char d[]={'H','e','l','l','o','!','0'};//error 定义字符串表示错误, 实际上定义了一个字符数组printf("%s\n", a);printf("%s\n", b);printf("%s\n", c);printf("%p\n", d);printf("%llu\n",sizeof(a)/sizeof(a[0]));for(int i =0; i <sizeof(a)/sizeof(a[0]); i++){printf("%c",*(a + i));}printf("\n");for(int i =0; i <sizeof(a)/sizeof(a[0]); i++){printf("%c", a[i]);}printf("\n");for(int i =0; i <sizeof(d)/sizeof(d[0]); i++){printf("%c",*(d + i));}printf("\n");for(int i =0; i <sizeof(d)/sizeof(d[0]); i++){printf("%c", d[i]);}printf("\n");return0;}
运行结果
四、字符串的定义
如果要构造一个字符串—用指针定义
如果要处理一个字符串—用数组定义
实例
#include<stdio.h>//#include <string.h>intmain(){// 指针的方式定义字符串,只可读char* a ="Hello!";// 相当于 const char* c = "Hello!";// 数组的方式定义字符串,可读可写char b[]="Hello!";
b[0]='B';printf("%s\n", b);return0;}
运行结果
五、字符串赋值
实例
#include<stdio.h>intmain(){char a[8]="Hello!";char* b = a;char** c =&b;char* d = b;printf("%p##\n", a);printf("%s##\n", a);printf("%p##\n", b);printf("%s##\n", b);printf("%p##\n",*c);printf("%s##\n",*c);printf("%p##\n", c);printf("%s##\n", c);printf("%p##\n", d);printf("%s##\n", d);return0;}