\documentclass{beamer} %include lhs2TeX.fmt \author{Piyush P Kurur\\ Office no: 224\\ Dept. of Comp. Sci. and Engg.\\ IIT Kanpur} \newcommand{\Token}[2][]{\node(#2#1)[token]{#2};} \newcommand{\Symbol}[2][]{\node(#2#1)[symbol]{#2};} \newcommand{\Point}[1]{\node(#1)[point]{#1};} \usepackage{tikz} \usetikzlibrary{positioning,shapes,chains,fit} \usetikzlibrary{shapes.symbols} \usetikzlibrary{matrix} \usetikzlibrary{backgrounds} \usetikzlibrary{shapes.geometric} \usepackage{multicol} \usepackage{algorithm2e} \usepackage{pgfkeys} \usepackage{multicol} \pgfkeys % {% /tikz/box/.style={ shape=rectangle,% minimum size=2em,% top color=white, bottom color=red!50!black!50, inner sep=0pt}, /tikz/garbage/.style={% starburst,% fill=yellow,% draw=red } } \title{Fundamentals of Computing: Lecture 16} \date{September 4, 2009} \begin{document} \begin{frame} \maketitle \end{frame} \begin{frame} \frametitle{Summary of the previous lecture} \begin{itemize} \item Integers can be added and subtracted to pointers. \item Difference of two pointers can be taken if they are of the same type. \item The operator |ptr++| etc also works. array. \end{itemize} \end{frame} \begin{frame} \frametitle{Summary continued...} \begin{itemize} \item For arrays |T a[100]| the value |a| is the address of the starting element. \item The expression |&a[i]| is equivalent to |a+i| \item The expression |a[i]| is equivalent to |*(a+i)|. \end{itemize} \end{frame} \begin{frame} \frametitle{Passing arrays to functions} \begin{itemize} \item The value of an array variable is the starting address. \item Functions are call by value. \end{itemize} \end{frame} \begin{frame} \begin{code} #include int strlen(char *ptr) { char *start = ptr; while(*ptr) ptr++; return ptr - start; } int strlen(char *ptr); int main(){ char a[] = "hello world"; printf("length is %d\n", strlen(a)); } \end{code} \end{frame} \begin{frame} \frametitle{Copying string} \begin{code} void strcpy(char *src, char *dest) { while(*src) { *dest = *src; dest++; src++; } } \end{code} \end{frame} \end{document}