C之字符数组
#include <stdio.h>
int main(){
//printf("hello world;");
char name[6] = "nihao"; //对于字符串来说,会自动在隐藏一个\0,并不需要我们手动去添加
//char name[5] = "nihao" 只分配5个是错误,自动隐含了\0,要分配6个
//char name[] = {'n','i','h','a','o','\0'};//两种情况不一样
printf("%s",name);
return 0;
}
C之指针引用字符串
#include <stdio.h>
int main(){
char *name="wenrou";//“wenrou”-->字符串常量,空间在静态常量区
//name[0]='W';//这种做法是错误的,不能通过指针改变字符串常量的任何内容
return 0;
}
C语言之数组指针
#include <stdio.h>
int main(){
int br[3][4]={0};
int (*p)[4] = br;
//事实上并不存在什么二维数组,只是一维数组的元素仍是一个一维数组
//br的首元素仍是一个数组,定义一个指针指向这个首元素数组
return 0;
}
数组指针:首先它是一个指针,它指向数组
指针数组:首先它是一个数组,它存放指针
#include <stdio.h>
int main(){
//数组指针
int ar[3]={0};
int (*p)[3] = &ar;
//指针数组
int a=1,b=2,c=3;
int *br[3]={&a,&b,&c};
return 0;
}
函数指针:指向函数的指针
#include <stdio.h>
int fun(int a,int b){
return a+b;
}
int main(){
//函数指针
int (*pfunc)(int ,int);
pfunc=fun;
return 0;
}
指针函数:返回指针的函数
int* fun1(int a,int b){
static int x=a+b;
return &x;
}
不能定义void类型的变量,可以定义void类型的指针。指针大小是确定的。
指针数组作为main函数的形参
首参数为该程序的路径(自动传递)
结构体指针
#include <stdio.h>
int main(){
printf("hello world!\n");
typedef struct Student{
int id;
int age;
}Stduent;
Student s1 = {1,11};
printf("id: %d ,age: %d \n",s1.id,s1.age);
Student *p1 = &s1;
printf("id: %d ,age: %d \n",p1->id,p1->age);
return 0;
}
网友评论