C语言基础知识(17)

写一个程序来检查C语言编程中的调色板数量

#include<stdio.h>#include<conio.h>main(){int n,r,sum=0,temp;clrscr();printf("enter the number=");scanf("%d",&n);

temp=n;while(n>0){

r=n%10;

sum=(sum*10)+r;

n=n/10;}if(temp==sum)printf("palindrome number ");elseprintf("not palindrome");getch();}

什么是preprocessor directives

Preprocessor directives一般放在程序的开头。主要是用来指定调用库文件的。还有一个用途是用来定义一些常值变量,宏定义等等

STL迭代器如何实现

迭代器是一种抽象的设计理念,通过迭代器可以在不了解容器内部原理的情况下遍历容器,除此之外,STL中迭代器一个最重要的作用就是作为容器与STL算法的粘合剂。

迭代器的作用就是提供一个遍历容器内部所有元素的接口,因此迭代器内部必须保存一个与容器相关联的指针,然后重载各种运算操作来遍历,其中最重要的是*运算符与->运算符,以及++、--等可能需要重载的运算符重载。这和C++中的智能指针很像,智能指针也是将一个指针封装,然后通过引用计数或是其他方法完成自动释放内存的功能。

最常用的迭代器的相应型别有五种:value type、difference type、pointer、reference、iterator catagoly;

写一个程序来打印给定数字的阶乘(不使用递归)

#include<stdio.h>#include<conio.h>voidmain(){int i,fact=1,number;clrscr();printf("Enter a number: ");scanf("%d",&number);for(i=1;i<=number;i++){

fact=fact*i;}printf("Factorial of %d is: %d",number,fact);getch();}

这样赋值对不对?错在哪里

myName="test";不对。我们不能用等号给一个字符串赋值。需要使用strcpy

STL中list与queue之间的区别

list不再能够像vector一样以普通指针作为迭代器,因为其节点不保证在存储空间中连续存在;

list插入操作和结合才做都不会造成原有的list迭代器失效;

list不仅是一个双向链表,而且还是一个环状双向链表,所以它只需要一个指针;

list不像vector那样有可能在空间不足时做重新配置、数据移动的操作,所以插入前的所有迭代器在插入操作之后都仍然有效;

deque是一种双向开口的连续线性空间,所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作;可以在头尾两端分别做元素的插入和删除操作;

deque和vector最大的差异,一在于deque允许常数时间内对起头端进行元素的插入或移除操作,二在于deque没有所谓容量概念,因为它是动态地以分段连续空间组合而成,随时可以增加一段新的空间并链接起来,deque没有所谓的空间保留功能。

写一个程序用递归法打印给定数字的阶乘

#include<stdio.h>#include<conio.h>longfactorial(int n)// function to calculate the factorial of a given number. {if(n ==0)return1;elsereturn(n *factorial(n-1));//calling the function recursively. }voidmain(){int number;//declaration of variables. long fact;clrscr();printf("Enter a number: ");scanf("%d",&number);

fact =factorial(number);//calling a function. printf("Factorial of %d is %ld

", number, fact);getch();//It reads a character from the keyword. }

为什么c语言被认为是中级语言

这是因为c语言既能像高级语言那样编写程序,又可以像低级语言如汇编那样直接操作硬件

野指针是什么?如何检测内存泄漏

野指针:指向内存被释放的内存或者没有访问权限的内存的指针。

“野指针”的成因主要有3种:

指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。例如

char *p = NULL;

char *str = new char(100);

指针p被free或者delete之后,没有置为NULL;

指针操作超越了变量的作用范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoyi9812

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值