黑马程序员-IOS开发之--C语言基础一函数,字符串,指针,数组,

时间:2022-12-17 00:25:16
---------------------- <a href="http://edu.csdn.net"target="blank"> ASP.Net+Unity开发 </a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

1.函数的注意事项:

(1)默认情况下,不允许有函数的名称一样
(2)函数不能嵌套定义
(3)函数不能重复定义,但是可以重复声明
(4)如果有函数的声明,没有函数的定义
1> 编译可以通过,因为编译器只会检测语法合不合理,并不会检测函数有没有定义
2> 链接报错,因为链接的时候会检测函数是否定义

 

参数注意点
(1)形式参数:定义函数时函数名后面中的参数,简称形参
(2)实际参数:调用函数式传入的具体数据,简称实参
(3)实参个数必须等于形参个数
(4)函数体内部不能定义和形参一样的变量
(5)如果是基本数据类型作为函数形参,纯粹是值传递,修改函数内部形参的值,并不会影响外面实参的值
(6)一个函数可以没有形参,也可以有无限多个形参

return的作用:
1> 退出函数
2> 返回一个具体值给函数调用者

返回值注意点
1> void代表没有返回值
2> 如果没有明确说明返回值类型,默认是返回int类型
3> 就算明确声明了返回值类型,也可以不返回任何值
默认情况下,C语言不允许两个函数的名称一样
#define N 10

int main(int argc, const char * argv[])
{

int a[N];
int i,j,t;
for (i=0; i<N; i++) {
scanf("%d",&a[i]);
}
for (i=1; i<N-1; i++) {
for (j=0; j<N-i; j++) {
if (a[j]>a[i+1]) {
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for (i=0; i<N; i++) {
printf("%d\n",a[i]);
}
return 0;
}

注意:
全局变量和局部变量 在同一个源文件中,允许全局变量和局部变量同名。 局部变量保证了函数之间的独立性,是程序设计中常用的变量 全局变量增加了函数之间数据传递的通道,但是降低了函数间的独立性,降低了程序的清晰性, 局部变量仅当它所在的函数被调用时才存在,执行完成函数后,该变量就不存在  全局变量中程序的全部执行过程中一直存在,直至程序执行完,才释放它所占的内存空间

2.include的作用 1> 作用:拷贝右边文件的所有内容到#include所在的位置
2> 自定义的文件用"",系统自带的文件用<>
3> #include <stdio.h>的目的:拷贝printf函数的声明

3.strlen函数:计算字符串长度
(1)计算的是字符数,并不是字数。一个汉字算作3个字符
(2)计算的字符不包括\0
(3)从某个地址开始数字符的个数,直到遇到\0为止


4.指针 (1) 指针变量只能存储地址
(2)指针就一个作用:能够根据一个地址值,访问对应的存储空间
(3)指针变量p前面的int:指针变量p只能指向int类型的数据

任何指针都占用8个字节的存储空间
5.定义字符串的方式

1> 利用数组
char name[] = "itcast";

特点:字符串里面的字符是可以修改的
使用场合:字符串的内容需要经常修改

2> 利用指针
char *name = "itcast";
特点:字符串其实是一个常量字符串,里面的字符是不能修改
使用场合:字符串的内容不需要修改,而且这个字符串经常使用

定义字符串数组

1> 利用二维字符数组

char names[2][10] = {"jack","rose"};

2> 利用指针数组

char *names[2] = {"jack","rose"};




-------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
详细请查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>