c语言基础笔记
一 :数据类型
1.float类型,在输出的时候可以使用 .数字 来把浮点数精确到小数点后几位,比如 printf("%.3f",float)精确到小数点后三位,不足补0
2.字符串接收 定义个字符数组
char str[]="";
scanf("%s",&str); //遇到空格就停止接收
gets(str); //可以接收所有字符
printf("%s",str);
3.在向一个函数传入数组,直接传入数组名,其实就相当于传入的是数组的首地址指针;在函数中可以用数组形式接收int arr[],也可以用指针形式接收int * arr;
#include <stdio.h>
#define four 4; void add(int arr[]);
//也可以是
void add(int * arr); int main(void)
{
int arr[four]={,,,};
add(arr);
} void add(int * arr)
{
//在操作数组时 arr[i]==*(arr+i)
int i;
for(i=;i<;i++)
{
printf("%d",arr[i]);
//也可以是
printf("%d",*(arr+i));
} }
二:结构体
struct books{
int num;
char name[];
float price;
}
2.1. 结构体内存占用
2.1.1.结构体所占的空间可以见到的认为是各个成员所占内存空间之和
int 4bit, char 1bit, float 4bit
所以结构体books的大小大概是29bit
2.1.2.实际是最大成员变量所占空间的最小整倍数
在结构体books中最大成员变量是int和float,都是4bit,4的最小倍数要比29大,所以就是32,
因此实际占得大小是32bit
2.3 typedef 给类型重新指定名称
typedef int TOINT
int a=10; => TOINT a=10;
更改结构体的名称
1.typedef struct books BKS;
2. typedef struct books{
int num;
char name[21];
float price;
}BKS;
2.3 赋值
2.3.1. 最特殊的是给结构体中的数组赋值
错误写法: BKS.name = "C primer Plus";
正常写法: strcpy(BKS.name,"C primer Plus");
或者在定义结构体的时候使用指针指定名称
typedef struct books{
int num;
char * name;
float price;
}BKS;
这样就可以
先申请内存空间malloc
BKS.name = (char*) malloc(50*sizeof(char));
strcpy(BKS.name,"C primer Plus");
2.3.2. 结构体变量可以直接赋值给另一个结构体变量
BKS a={......}; BKS b;
b = a;
2.4 数组与结构体
定义一个结构体数组,存放结构体
BKS arr[] = {
{....},
{....},
{....}
}
访问的话就是,比如访问name : arr[0].name
c语言基础笔记的更多相关文章
- TSQL语言基础笔记之单表查询
db_id()函数 返回对象的id,如果返回的对象为null,则判断不存在 if db_id('testdb') is null --判断数据库是否存在 create database testdb ...
- Java学习笔记:语言基础
Java学习笔记:语言基础 2014-1-31 最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...
- 【记】《.net之美》之读书笔记(一) C#语言基础
前言 工作之中,我们习惯了碰到任务就直接去实现其业务逻辑,但是C#真正的一些基础知识,在我们久而久之不去了解巩固的情况下,就会忽视掉.我深知自己正一步步走向只知用法却不知原理的深渊,所以工作之余,一直 ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...
- C语言基础(转载自大海笔记)
# C语言基础2015年03月26日10:04:411. 语言排行榜C——java——objective-C2. 进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...
- Java基础笔记(1)----语言基础
变量 变量:是内存中的一块存储空间,是存储数据的基本单元. 使用:先声明,后赋值,在使用. 声明:数据类型 + 变量名 = 值.(例:int a = 5:) 数据类型 分类:如图: 详解: Strin ...
- MySQL学习笔记_8_SQL语言基础复习
SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...
- go学习笔记-语言基础
语言基础 结构 基础组成: 包声明 引入包 函数 变量 语句 & 表达式 注释 程序 在开始编写应用之前,我们先从最基本的程序开始,在学习大部分语言之前,都会编写一个可以输出hello wor ...
随机推荐
- 虚拟机内安装Centos7步骤
下面就来看看怎么安装centos7,首先就是要准备一个虚拟机了 简称VM,当然虚拟机的安装步骤,我也不再多说,我用的Workstation 15 Pro的版本,我们直接打开虚拟机,打开界面如下: 在安 ...
- 20155216 2016-2017-2 《Java程序设计》第九周学习总结
20155216 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC架构 JDBC API的使用 JDBC连接数据库 1.导入JDBC包: 添加impo ...
- 多级反馈序列c语言模拟实现
多级反馈队列调度算法: 1.设置多个就绪队列,并给队列赋予不同的优先级数,第一个最高,依次递减. 2.赋予各个队列中进程执行时间片的大小,优先级越高的队列,时间片越小. 3.当一个新进程进入内存后,首 ...
- day 11 名片管理系统
1 思路 #名片1 名片2 {"name":"alex","age":18,"QQ":12123} {"nam ...
- CF 868 F. Yet Another Minimization Problem
F. Yet Another Minimization Problem http://codeforces.com/contest/868/problem/F 题意: 给定一个长度为n的序列.你需要将 ...
- mybatis逆向工程 mbg运行java代码时提示找不到MBG.xml的解决方法
这里要写全路径才能找到文件
- 身份证扫描识别/身份证OCR识别的正确姿势,你get到了吗?
自从国家规定电信实名制之后,实名制已经推广到各个领域:办理通信业务需要实名制.银行开户需要实名制.移动支付需要实名制,就连注册个自媒体账户都需要实名制. 而实名制的背后,就是身份证信息的采集和录入验证 ...
- php 操作 oracle lob 数据2
CREATE SEQUENCE mylobs_id_seq NOMINVALUE NOMAXVALUE NOCYCLE CACHE 20 NOORDERINCREMENT ...
- dalao自动报表邮件2.0
经过昨天的修改优化后,dalao收到了不是“木马”的邮件,欣慰地点了点头,“不错,不错,这几张表设计的简洁明了,看着有货!不过呀,,,这些表的数据太多了一点,十几天的数据一大溜,能不能再简洁一点,做一 ...
- Centos7下安装Oracle11g r2
我的centos7是在virtualbox下安装的,安装Oracle安装了好久好久,最开始的时候在网上找的两个文章,按照步骤装,有一篇写着装的时候有灰色的竖线,直接按space键或者鼠标右键close ...