iOS笔记之_C语言数组与指针
2015-03-11 14:58
246 查看
一、数组
用来存放数据的集合。
1.数组的定义
格式:元素类型 数组名[元素个数];
如:int age[3];
2.初始化:只能在定义的时候进行初始化
int age[3]={10,9,6};
通过下标引用数组成员:
a[0] = 10;
错误写法1:
int age[];
错误写法2:
int ages[5];
ages = {10, 11, 12, 14};
3.数组作为函数参数时注意点:
> 1.形参与实参数组下标的数量一般是一样的。
> 2.数组名作为函数时,要求和相对应的实参都必须是类型相同的参数,都必须有明确的数组说明。
> 3.数组名作为函数参数时,不是进行值传递而是地址传递。
> 4.函数使用的数组就是传送过来的数组。
> 5.数组作为函数参数,可以省略元素个数。
> 6.数组的遍历:可以使用for和while循环。
4.二维数组
例如a[3][4] = {{}{}{}};
代表数组a中有3组数,每组中有4个元素。
练习:使用冒泡法对数组元素进行排序,a[10]={1,4,33,6,15,21,2,88,62,54}。
二、字符串
1.什么是字符串?
很多字符组合子在一起就成了字符串
2.字符串的初始化
char a[] = "hello"
字符串末尾默认有\0
字符串的输出用%s ,但是\0不会输出
3.\0的作用
> 1.字符串结束的标记
> 2.printf("%s", name2);
会从name2这个地址开始输出字符,直到遇到\0为止
4.strlen函数:计算字符串长度
> 1.计算的是字符数,并不是字数,一个汉字算作3个字符。
> 2.计算的字符不包括\0。
> 3.从某个地址开始数字符的个数,直到遇到\0为止。
三、指针
1.什么是指针
指针也是一种数据类型。
变量类型 变量名;
格式:变量类型 *变量名;
定义了一个指针变量p。
指针变量只能存储地址。
指针就一个作用:能够根据一个地址值,访问对应的存储空间。
指针变量p前面的int:指针变量p只能指向int类型的数据。
任何指针都是8个字节。
2.实例
练习:通过指针比较两个数中的较小者。
> 1.数组元素的访问方式
int ages[5];
int *p;
p = ages;
1> 数组名[下标] ages[i]
2> 指针变量名[下标] p[i]
3> *(p + i)
> 2.指针变量+1,地址值究竟加多少,取决于指针的类型
int * 4
char * 1
double * 8
4.指针与字符串
定义字符串的2种方式
1> 利用数组
char name[] = "itcast";
* 特点:字符串里面的字符是可以修改的
* 使用场合:字符串的内容需要经常修改
2> 利用指针
char *name = "itcast";
* 特点:字符串其实是一个常量字符串,里面的字符是不能修改
* 使用场合:字符串的内容不需要修改,而且这个字符串经常使用
5.指向函数的指针
.定义指向函数的指针
double (*p)(double, char *, int);
p = haha;
或者
double (*p)(double, char *, int) = haha;
(*p)是固定写法,代表指针变量p将来肯定是指向函数
3.如何间接调用函数
1> p(10.7, "jack", 10);
2> (*p)(10.7, "jack", 10);
练习:编写一个函数int pieAdd(int n),计算1+2+3+……+n的值并返回。比如pieAdd(3)的返回值是1+2+3=6。
程序代码:
用来存放数据的集合。
1.数组的定义
格式:元素类型 数组名[元素个数];
如:int age[3];
2.初始化:只能在定义的时候进行初始化
int age[3]={10,9,6};
通过下标引用数组成员:
a[0] = 10;
错误写法1:
int age[];
错误写法2:
int ages[5];
ages = {10, 11, 12, 14};
3.数组作为函数参数时注意点:
> 1.形参与实参数组下标的数量一般是一样的。
> 2.数组名作为函数时,要求和相对应的实参都必须是类型相同的参数,都必须有明确的数组说明。
> 3.数组名作为函数参数时,不是进行值传递而是地址传递。
> 4.函数使用的数组就是传送过来的数组。
> 5.数组作为函数参数,可以省略元素个数。
> 6.数组的遍历:可以使用for和while循环。
4.二维数组
例如a[3][4] = {{}{}{}};
代表数组a中有3组数,每组中有4个元素。
练习:使用冒泡法对数组元素进行排序,a[10]={1,4,33,6,15,21,2,88,62,54}。
#include <stdio.h> int main() { // 定义一个数组存放10个不同数字 int a[10]={1,4,33,6,15,21,2,88,62,54}; // 定义三个变量 int i,j,temp; printf(" 需要排序的数字为:\n"); for (i = 0; i < 10; i++) { printf("%d ",a[i]); } printf("\n---------------------\n"); //进行排序 for (i = 0; i < 10; i++) { for (j= 0 ;j < 10-i ;j++) if (a[j] < a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } //输出排序结果 printf("排序后的结果为:\n"); for(i = 0;i < 10; i++) { printf("%d ",a[i]); } printf("\n"); return 0; }输出结果为:
二、字符串
1.什么是字符串?
很多字符组合子在一起就成了字符串
2.字符串的初始化
char a[] = "hello"
字符串末尾默认有\0
字符串的输出用%s ,但是\0不会输出
3.\0的作用
> 1.字符串结束的标记
> 2.printf("%s", name2);
会从name2这个地址开始输出字符,直到遇到\0为止
4.strlen函数:计算字符串长度
> 1.计算的是字符数,并不是字数,一个汉字算作3个字符。
> 2.计算的字符不包括\0。
> 3.从某个地址开始数字符的个数,直到遇到\0为止。
三、指针
1.什么是指针
指针也是一种数据类型。
变量类型 变量名;
格式:变量类型 *变量名;
定义了一个指针变量p。
指针变量只能存储地址。
指针就一个作用:能够根据一个地址值,访问对应的存储空间。
指针变量p前面的int:指针变量p只能指向int类型的数据。
任何指针都是8个字节。
2.实例
#include <stdio.h> int main() { int a = 10; //定义指针p并把a的内存地址传给p int *p = &a; //清空指针 p = 0; //p = null; return 0; }
练习:通过指针比较两个数中的较小者。
#include<stdio.h> int main() { int a,b,min; int *p_a,*p_,p_min; p_a = &a; p_b = &b; p_min = &min; scanf("%d %d",p_a,p_b); 比较两值大小,将较小的赋值给*p_min *p_min = *p_a; if(*p_min>*p_b) *p_min = *p_b; //直接访问方式输出变量min printf("min=%d\n",min); //间接访问输出Min printf("min=%d\n",p_min); retern 0; }3.指针与数组
> 1.数组元素的访问方式
int ages[5];
int *p;
p = ages;
1> 数组名[下标] ages[i]
2> 指针变量名[下标] p[i]
3> *(p + i)
> 2.指针变量+1,地址值究竟加多少,取决于指针的类型
int * 4
char * 1
double * 8
4.指针与字符串
定义字符串的2种方式
1> 利用数组
char name[] = "itcast";
* 特点:字符串里面的字符是可以修改的
* 使用场合:字符串的内容需要经常修改
2> 利用指针
char *name = "itcast";
* 特点:字符串其实是一个常量字符串,里面的字符是不能修改
* 使用场合:字符串的内容不需要修改,而且这个字符串经常使用
5.指向函数的指针
.定义指向函数的指针
double (*p)(double, char *, int);
p = haha;
或者
double (*p)(double, char *, int) = haha;
(*p)是固定写法,代表指针变量p将来肯定是指向函数
3.如何间接调用函数
1> p(10.7, "jack", 10);
2> (*p)(10.7, "jack", 10);
练习:编写一个函数int pieAdd(int n),计算1+2+3+……+n的值并返回。比如pieAdd(3)的返回值是1+2+3=6。
程序代码:
#include<stdio.h> int pieAdd(int m); int main() { //定义一个变量n存储用户输入的数值 int n = 0; //如果小于或等于0则重新输入 if (n <= 0) { printf("请输入一个正整数:\n"); scanf("%d",&n); } printf("结果为:%d\n",pieAdd(n)); return 0; } //定义函数计算累加结果 int pieAdd(int m) { int i = 1, sum = 0; while (i <= m) { sum += i; i++; } return sum; }输出结果:
相关文章推荐
- 黑马程序员-IOS笔记-C语言中的指针与数组
- 黑马程序员-IOS笔记-C语言中的字符串数组 指针
- C语言学习笔记【指针04】指针数组与指向指针的指针 推荐
- iOS开发学习笔记 2-9 C语言部分 内存分配函数 函数指针 指针函数 void*
- 黑马程序员——ios开发基础之C语言数组、指针与结构体
- 黑马程序员—IOS基础之C语言—数组与指针
- 《IOS_C语言》高级指针(结构体指针、结构体数组指针、结构体数组指针,作为函数的参数使用、预编译指令)
- C语言学习笔记之成员数组和指针
- ios开发-c语言之指针和数组以及指针和字符串的学习
- C语言回顾(六、基类型,数组指针,字符串指针,函数指针,文字常量区)——iOS开发基础
- iOS开发学习笔记 2-5 C语言部分 数组
- iOS开发学习笔记 2-9 C语言部分 内存分配函数 函数指针 指针函数 void*
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
- 数组和指针————C语言学习笔记1
- ios笔记--C语言指针笔记
- IOS开发---C语言-⑫指针与数组、字符串
- C语言中 字符、数组、字符串、指针——学习IOS你必须了解
- 黑马程序员——ios学习笔记 C语言 指针的应用
- 黑马程序员-IOS学习笔记 用指针逆序一个数组
- iOS笔记:第七篇 C语言 数组